home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-10-09 | 6.5 KB | 278 lines | [TEXT/CWIE] |
- // ===========================================================================
- // CTridentuptimeView.cp ©1993 Metrowerks Inc. All rights reserved.
- // ===========================================================================
- //
- // A View for demonstrating large Image sizes
- //
- // View draws the vertical Image coordinate at 20 pixel intervals.
- //
- // Clicking, holding, and dragging the mouse outside the View's frame
- // autoscrolls the View
-
- #include "CTridentuptimeView.h"
- #include "CTridentApp.h"
- #include "CTridentCmds.h"
- #include "TridentAESuite.h"
- #include <LStream.h>
-
- #ifndef __TOOLUTILS__
- #include <ToolUtils.h>
- #endif
-
- CTridentuptimeView*
- CTridentuptimeView::CreateTridentViewStreamB(
- LStream *inStream)
- {
- return (new CTridentuptimeView(inStream));
- }
-
- CTridentuptimeView::CTridentuptimeView(
- LStream *inStream)
- : CTridentView(inStream)
- {
- this->fInterval = 30;
- }
-
- CTridentuptimeView::CTridentuptimeView()
- {
- this->fInterval = 30;
- }
-
- CTridentuptimeView::~CTridentuptimeView()
- {
- }
-
-
- Boolean
- CTridentuptimeView::DoSomethingWillYa(
- CommandT inCommand,
- void *ioParam)
- {
- OSErr err;
- long theInterval = 10;
- Boolean cmdHandled = FALSE;
- AppleEvent intervalappleEvent, replyEvent;
-
- if ((inCommand > 419) && (inCommand < 426))
- {
- AEAddressDesc& theAddress = ((CTridentWindow*) mSuperView)->fAEAddressDesc;
- err = AECreateAppleEvent(kAEAUXSuite, kAEInterval, &theAddress, kAutoGenerateReturnID, kAnyTransactionID, &intervalappleEvent);
- err = ::AECreateDesc(typeNull, NULL, 0, &replyEvent);
- }
- switch (inCommand) {
-
- // Return menu item status according to command messages.
- // Any that you don't handle will be passed to LApplication
-
- case 420:
- theInterval = 5;
- break;
-
- case 421:
- theInterval = 10;
- break;
-
- case 422:
- theInterval = 30;
- break;
-
- case 423:
- theInterval = 60;
- break;
- case 424:
- theInterval = 600;
- break;
- case 425:
- theInterval = 6000;
- break;
- default:
- // cmdHandled = inherited::DoSomethingWillYa(inCommand, ioParam);
- break;
-
- }
- if ((inCommand > 419) && (inCommand < 426))
- {
- err = ::AEPutParamPtr(&intervalappleEvent, keyInterval,typeLongInteger,(Ptr)&theInterval,sizeof(long));
- UAppleEventsMgr::SendAppleEventWithReply(intervalappleEvent, replyEvent, TRUE);
- cmdHandled = TRUE;
- }
- return cmdHandled;
- }
-
- void
- CTridentuptimeView::HandleAppleEvent(
- const AppleEvent &inAppleEvent,
- AppleEvent &outAEReply,
- AEDesc &outResult,
- long inAENumber)
- {
- OSErr err;
- LStr255 theText = "this is a test";
- char string[1024];
- DescType actualCode;
- long actualSize;
-
- switch (inAENumber) {
-
- case ae_Close:
- SysBeep(3);
- break;
- case kAEJavMsg:
- case keyMessageCode:
- case 408:
- this->ResetTicks();
- err = ::AEGetParamPtr(&inAppleEvent, keyMsgString, typeChar, &actualCode, &string, 1024, &actualSize);
- if (err != noErr)
- theText = "Got Chunks from the Host";
- else
- {
- string[actualSize-1] = NULL;
-
- for (char* ptr = string; *ptr != NULL; ptr++)
- if (*ptr == '\r')
- *ptr = '\n';
-
- theText = string;
- }
-
- ListHandle theList = this->GetMacListH();
- LAddRow(1,0, theList);
- Cell theSelection = {0, 0};
- this->SelectOneCell(theSelection);
- this->SetDescriptor(theText);
- ::LSetSelect(FALSE, theSelection, theList);
- Int16 numRows = (**theList).dataBounds.bottom - 1;
- if (numRows >100)
- LDelRow(100-numRows, 100, theList);
-
- break;
- default:
-
- inherited::HandleAppleEvent(inAppleEvent, outAEReply,
- outResult, inAENumber);
- break;
- }
-
- }
- void
- CTridentuptimeView::FindCommandStatus(
- CommandT inCommand,
- Boolean &outEnabled,
- Boolean &outUsesMark,
- Char16 &outMark,
- Str255 outName)
- {
- outMark = 18;
- switch (inCommand) {
-
- // Return menu item status according to command messages.
- // Any that you don't handle will be passed to LApplication
- case 421:
- outEnabled = TRUE;
- outMark = (this->fInterval == 10)?18:NULL;
- outUsesMark = TRUE;
- break;
- case 422:
- outEnabled = TRUE;
- outMark = (this->fInterval == 30)?18:NULL;
- outUsesMark = TRUE;
- break;
- case 423:
- outEnabled = TRUE;
- outMark = (this->fInterval == 60)?18:NULL;
- outUsesMark = TRUE;
- break;
- case 424:
- outEnabled = TRUE;
- outMark = (this->fInterval == 600)?18:NULL;
- outUsesMark = TRUE;
- break;
- case 425:
- outEnabled = TRUE;
- outMark = (this->fInterval == 3600)?18:NULL;
- outUsesMark = TRUE;
- break;
- default:
- inherited::FindCommandStatus(inCommand, outEnabled,
- outUsesMark, outMark, outName);
- break;
- }
- }
-
- void CTridentuptimeView::SendInterval(long seconds)
- {
- DescType actualCode;
- long actualSize;
- long clientSessionID = (long) ((CTridentWindow*) mSuperView)->fPortRefNum;
- AEAddressDesc& theAddress = ((CTridentWindow*) mSuperView)->fAEAddressDesc;
- MenuHandle theMenu = GetMenu(132);
- switch(this->fInterval)
- {
- case 10:
- CheckItem(theMenu, 1, FALSE);
- break;
- case 30:
- CheckItem(theMenu, 2, FALSE);
- break;
- case 60:
- CheckItem(theMenu, 3, FALSE);
- break;
- case 600:
- CheckItem(theMenu, 4, FALSE);
- break;
- case 3600:
- CheckItem(theMenu, 5, FALSE);
- break;
- default:
- {}
- break;
- }
- this->fInterval = seconds;
- switch(seconds)
- {
- case 10:
- CheckItem(theMenu, 1, TRUE);
- break;
- case 30:
- CheckItem(theMenu, 2, TRUE);
- break;
- case 60:
- CheckItem(theMenu, 3, TRUE);
- break;
- case 600:
- CheckItem(theMenu, 4, TRUE);
- break;
- case 3600:
- CheckItem(theMenu, 5, TRUE);
- break;
- default:
- {}
- break;
- }
- AppleEvent intervalappleEvent, reply3Event;
- OSErr err = AECreateAppleEvent(kAEAUXSuite, kAEInterval, &theAddress, kAutoGenerateReturnID, kAnyTransactionID, &intervalappleEvent);
- err = ::AECreateDesc(typeNull, NULL, 0, &reply3Event);
- err = ::AEPutParamPtr(&intervalappleEvent, keyInterval,typeLongInteger,(Ptr)&seconds, sizeof(long));
- err = ::AEPutParamPtr(&intervalappleEvent, 'ssID',typeLongInteger,(Ptr)&clientSessionID,sizeof(long));
- UAppleEventsMgr::SendAppleEventWithReply(intervalappleEvent, reply3Event, TRUE);
-
- LStr255 theText;
- char status[1];
- if (&reply3Event != nil) {
- err = ::AEGetParamPtr(&reply3Event, keyErrorNumber, typeChar, &actualCode, (Ptr)status, sizeof(char), &actualSize);
- err = noErr;
- if (*status == 'S')
- {
- err = ::AEGetParamPtr(&reply3Event, keyAEVersion, typeChar, &actualCode, &theText, 10, &actualSize);
- if (err != noErr)
- theText = "bad version non - success";
- //LListBox* myListBox = (LListBox*) this->FindPaneByID('winb');
- //if (myListBox != NULL) //this!
- this->SetDescriptor(theText);
- }
- AEDisposeDesc(&reply3Event);
- }
- AEDisposeDesc(&intervalappleEvent);
-
- }
-